/*
 * @Author: huangtianyang 916072572@qq.com
 * @Date: 2022-12-12 09:36:49
 * @LastEditors: huangtianyang
 * @LastEditTime: 2023-05-06 10:10:48
 * @FilePath: \cxl-admin\src\apis\account\index.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import axios from '../../axios/index'

/**
 * 定义查询用户列表参数接口
 */
export interface UserListParams {
    current: number //当前分页
    size: number //每页数量
    name?: string //姓名
    phone?: string //电话
    status?: number //状态
    companyName?: string
    companyId?: string
}

/**
 * 查询用户分页
 * @param params
 * @returns
 */
export const userList = (params: UserListParams) => {
    return axios({
        method: 'get',
        url: '/api/system/admin/list',
        params
    })
}

/**
 * 根据用户Id获取用户信息
 * @param adminId
 * @returns
 */
export const userInformationById = (adminId: string) => {
    return axios({
        method: 'get',
        url: '/api/system/admin/findById',
        params: { adminId }
    })
}

/**
 * 根据用户名获取通用用户信息
 * @param username
 * @returns
 */
export const userInformationByName = (username: string) => {
    return axios({
        method: 'get',
        url: '/api/system/admin/loadByUsername',
        params: { username }
    })
}

/**
 * 定义查询公司列表参数
 */
interface CompanyListParams {
    current: number //当前分页
    size: number //每页数量
    companyId?: string //企业id
    phone?: string //电话
    status?: number //状态
}

/**
 * 定义选择的菜单接口
 */
export interface MenuItem {
    id: string //菜单id/资源id
    parentId?: string //上级菜单id
    type?: number //1.菜单；2.按钮
}

/**
 * 定义创建用户参数接口
 */
export interface UserParas {
    companyAdminFlag?: number //企业管理员标识（0.否；1.是）
    companyId?: string //企业id
    id?: string //id
    name?: string //姓名
    password?: string //密码
    phone: string //手机号
    status: number //状态
    menuResourceDTOList?: MenuItem[] //菜单
}

/**
 * 从UserParas接口中移除 id 选项
 */
export type AddUserParas = Omit<UserParas, 'id'>

//新增员工
export const addUser = (data: AddUserParas) => {
    return axios({
        method: 'post',
        url: '/api/system/admin/add',
        data
    })
}

/**
 * 从UserParas接口中移除 companyAdminFlag 和 companyId 选项
 */
export type EditUserParas = Omit<UserParas, 'companyAdminFlag' | 'companyId'>

/**
 * 编辑员工
 * @param data
 * @returns
 */
export const editUser = (data: EditUserParas) => {
    return axios({
        method: 'post',
        url: '/api/system/admin/edit',
        data
    })
}

/**
 * 启用-禁用员工账号
 * @param id
 * @param status
 * @returns
 */
export const enable = (id: string, status: number) => {
    return axios({
        method: 'post',
        url: '/api/system/admin/enable',
        data: {
            id,
            status
        }
    })
}
